﻿using System;
using System.Collections.Generic;

namespace DambachMulti.Processing
{
	//delegates			
	public delegate void ThunkMethod<ThunkType>( ThunkType index ); //typically use indexes

	/// <summary>
	/// Represents a single parallelizable action executable on a processor
	/// </summary>
	public class Thunk<T>
	{
		public ThunkMethod<T>	Method;
		public Object			Parameter;

		public Thunk( ThunkMethod<T> method, T param )
		{
			this.Method		= method;
			this.Parameter	= param;
		}
	}
	/// <summary>
	/// A list of non-sequential, non-side effecting actions!
	/// </summary>
	public class ThunkList : List<Thunk<Object>> {}
}